/*
如果一个数是质数，而且他在质数表中的编号也是质数，称为特殊的质数。比如质数表中第7个质数是17，因为7和17都是质数，所以我们称17是特殊的质数；比如第10个质数是29，因为10不是质数，所以29不是特殊的质数。现给定非负整数n，求<=n的最大的特殊的质数。
Input
多组输入数据n（0<=n<=10^6）。
Output
输出小于等于n的最大的特殊的质数，对于给定的n如果不存在这样的质数，输出-1。
Sample Input
0
20
50
60
Sample Output
-1
17
41
59
*/
#include <bits/stdc++.h>
using namespace std;
const int MAX = 1e6 + 2;
int b[MAX + 1];      // 素数标记数组,0为素数，1为非素数
int prime[MAX + 1];  // 素数数组
int num = 0;
void x_prime()
{
    int i,j;
    b[0] = b[1] = 1;
    for (i = 2; i <= MAX;i++)
    {
        if(b[i]==0)
        {
            prime[++num] = i;
        }
        for (j = 1; j <= num && i * prime[j] < MAX;j++)
        {
            b[i * prime[j]] = 1;
            if(i%prime[j]==0)
                break;
        }
    }
}
int main()
{
    int i, j, x, n;
    x_prime();
    while(cin>>n)
    {
        x = -1;
        for (i = 1; i <= num && prime[i] <= n; i++)
        {
            if(b[i]==0)
            {
                x = prime[i];
            }
        }
        cout << x << endl;
    }
}
